package br.com.comdoc.entidade;

//@author Jorge
import java.sql.Blob;
import java.util.Objects;

public class Produto {

    private int id;
    private String marca;
    private String modelo;
    private Blob imagem;
    private String tipo;
    private String velocidade;
    private String cicloMensal;
    private boolean duplex;
    private String resolucao;
    private String processador;
    private String memoria;
    private String papelCapacidade;
    private String papelTipo;
    private String conectividade;
    private boolean fax;
    private boolean digitalizacao;
    private String rendimentoToner;
    private float valorMaxVenda;
    private float valorMinVenda;
    private float valorMaxLocacao;
    private float valorMinLocacao;
    private boolean status;

    public Produto(int id, String marca, String modelo, Blob imagem, String tipo, 
            String velocidade, String cicloMensal, boolean duplex, String resolucao, 
            String processador, String memoria, String papelCapacidade, String papelTipo, 
            String conectividade, boolean fax, boolean digitalizacao, String rendimentoToner, 
            float valorMaxVenda, float valorMinVenda, float valorMaxLocacao, float valorMinLocacao, 
            boolean status) {
        this.id = id;
        this.marca = marca;
        this.modelo = modelo;
        this.imagem = imagem;
        this.tipo = tipo;
        this.velocidade = velocidade;
        this.cicloMensal = cicloMensal;
        this.duplex = duplex;
        this.resolucao = resolucao;
        this.processador = processador;
        this.memoria = memoria;
        this.papelCapacidade = papelCapacidade;
        this.papelTipo = papelTipo;
        this.conectividade = conectividade;
        this.fax = fax;
        this.digitalizacao = digitalizacao;
        this.rendimentoToner = rendimentoToner;
        this.valorMaxVenda = valorMaxVenda;
        this.valorMinVenda = valorMinVenda;
        this.valorMaxLocacao = valorMaxLocacao;
        this.valorMinLocacao = valorMinLocacao;
        this.status = status;
    }

    public Produto(String marca, String modelo, Blob imagem, String tipo, String velocidade, 
            String cicloMensal, boolean duplex, String resolucao, String processador, 
            String memoria, String papelCapacidade, String papelTipo, String conectividade, 
            boolean fax, boolean digitalizacao, String rendimentoToner, float valorMaxVenda, 
            float valorMinVenda, float valorMaxLocacao, float valorMinLocacao) {
        this.marca = marca;
        this.modelo = modelo;
        this.imagem = imagem;
        this.tipo = tipo;
        this.velocidade = velocidade;
        this.cicloMensal = cicloMensal;
        this.duplex = duplex;
        this.resolucao = resolucao;
        this.processador = processador;
        this.memoria = memoria;
        this.papelCapacidade = papelCapacidade;
        this.papelTipo = papelTipo;
        this.conectividade = conectividade;
        this.fax = fax;
        this.digitalizacao = digitalizacao;
        this.rendimentoToner = rendimentoToner;
        this.valorMaxVenda = valorMaxVenda;
        this.valorMinVenda = valorMinVenda;
        this.valorMaxLocacao = valorMaxLocacao;
        this.valorMinLocacao = valorMinLocacao;
    }

    public Produto() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public Blob getImagem() {
        return imagem;
    }

    public void setImagem(Blob imagem) {
        this.imagem = imagem;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public String getVelocidade() {
        return velocidade;
    }

    public void setVelocidade(String velocidade) {
        this.velocidade = velocidade;
    }

    public String getCicloMensal() {
        return cicloMensal;
    }

    public void setCicloMensal(String cicloMensal) {
        this.cicloMensal = cicloMensal;
    }

    public boolean isDuplex() {
        return duplex;
    }

    public void setDuplex(boolean duplex) {
        this.duplex = duplex;
    }

    public String getResolucao() {
        return resolucao;
    }

    public void setResolucao(String resolucao) {
        this.resolucao = resolucao;
    }

    public String getProcessador() {
        return processador;
    }

    public void setProcessador(String processador) {
        this.processador = processador;
    }

    public String getMemoria() {
        return memoria;
    }

    public void setMemoria(String memoria) {
        this.memoria = memoria;
    }

    public String getPapelCapacidade() {
        return papelCapacidade;
    }

    public void setPapelCapacidade(String papelCapacidade) {
        this.papelCapacidade = papelCapacidade;
    }

    public String getPapelTipo() {
        return papelTipo;
    }

    public void setPapelTipo(String papelTipo) {
        this.papelTipo = papelTipo;
    }

    public String getConectividade() {
        return conectividade;
    }

    public void setConectividade(String conectividade) {
        this.conectividade = conectividade;
    }

    public boolean isFax() {
        return fax;
    }

    public void setFax(boolean fax) {
        this.fax = fax;
    }

    public boolean isDigitalizacao() {
        return digitalizacao;
    }

    public void setDigitalizacao(boolean digitalizacao) {
        this.digitalizacao = digitalizacao;
    }

    public String getRendimentoToner() {
        return rendimentoToner;
    }

    public void setRendimentoToner(String rendimentoToner) {
        this.rendimentoToner = rendimentoToner;
    }

    public float getValorMaxVenda() {
        return valorMaxVenda;
    }

    public void setValorMaxVenda(float valorMaxVenda) {
        this.valorMaxVenda = valorMaxVenda;
    }

    public float getValorMinVenda() {
        return valorMinVenda;
    }

    public void setValorMinVenda(float valorMinVenda) {
        this.valorMinVenda = valorMinVenda;
    }

    public float getValorMaxLocacao() {
        return valorMaxLocacao;
    }

    public void setValorMaxLocacao(float valorMaxLocacao) {
        this.valorMaxLocacao = valorMaxLocacao;
    }

    public float getValorMinLocacao() {
        return valorMinLocacao;
    }

    public void setValorMinLocacao(float valorMinLocacao) {
        this.valorMinLocacao = valorMinLocacao;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "Produto{" + "id=" + id + ", "
                + "marca=" + marca + ", "
                + "modelo=" + modelo + ", "
                + "imagem=" + imagem + ", "
                + "tipo=" + tipo + ", "
                + "velocidade=" + velocidade + ", "
                + "cicloMensal=" + cicloMensal + ", "
                + "duplex=" + duplex + ", "
                + "resolucao=" + resolucao + ", "
                + "processador=" + processador + ", "
                + "memoria=" + memoria + ", "
                + "papelCapacidade=" + papelCapacidade + ", "
                + "papelTipo=" + papelTipo + ", "
                + "conectividade=" + conectividade + ", "
                + "fax=" + fax + ", "
                + "digitalizacao=" + digitalizacao + ", "
                + "rendimentoToner=" + rendimentoToner + ", "
                + "valorMaxVenda=" + valorMaxVenda + ", "
                + "valorMinVenda=" + valorMinVenda + ", "
                + "valorMaxLocacao=" + valorMaxLocacao + ", "
                + "valorMinLocacao=" + valorMinLocacao + ", "
                + "status=" + status + '}';
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 11 * hash + this.id;
        hash = 11 * hash + Objects.hashCode(this.marca);
        hash = 11 * hash + Objects.hashCode(this.modelo);
        hash = 11 * hash + Objects.hashCode(this.imagem);
        hash = 11 * hash + Objects.hashCode(this.tipo);
        hash = 11 * hash + Objects.hashCode(this.velocidade);
        hash = 11 * hash + Objects.hashCode(this.cicloMensal);
        hash = 11 * hash + (this.duplex ? 1 : 0);
        hash = 11 * hash + Objects.hashCode(this.resolucao);
        hash = 11 * hash + Objects.hashCode(this.processador);
        hash = 11 * hash + Objects.hashCode(this.memoria);
        hash = 11 * hash + Objects.hashCode(this.papelCapacidade);
        hash = 11 * hash + Objects.hashCode(this.papelTipo);
        hash = 11 * hash + Objects.hashCode(this.conectividade);
        hash = 11 * hash + (this.fax ? 1 : 0);
        hash = 11 * hash + (this.digitalizacao ? 1 : 0);
        hash = 11 * hash + Objects.hashCode(this.rendimentoToner);
        hash = 11 * hash + Float.floatToIntBits(this.valorMaxVenda);
        hash = 11 * hash + Float.floatToIntBits(this.valorMinVenda);
        hash = 11 * hash + Float.floatToIntBits(this.valorMaxLocacao);
        hash = 11 * hash + Float.floatToIntBits(this.valorMinLocacao);
        hash = 11 * hash + (this.status ? 1 : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Produto other = (Produto) obj;
        if (this.id != other.id) {
            return false;
        }
        if (!Objects.equals(this.marca, other.marca)) {
            return false;
        }
        if (!Objects.equals(this.modelo, other.modelo)) {
            return false;
        }
        if (!Objects.equals(this.imagem, other.imagem)) {
            return false;
        }
        if (!Objects.equals(this.tipo, other.tipo)) {
            return false;
        }
        if (!Objects.equals(this.velocidade, other.velocidade)) {
            return false;
        }
        if (!Objects.equals(this.cicloMensal, other.cicloMensal)) {
            return false;
        }
        if (this.duplex != other.duplex) {
            return false;
        }
        if (!Objects.equals(this.resolucao, other.resolucao)) {
            return false;
        }
        if (!Objects.equals(this.processador, other.processador)) {
            return false;
        }
        if (!Objects.equals(this.memoria, other.memoria)) {
            return false;
        }
        if (!Objects.equals(this.papelCapacidade, other.papelCapacidade)) {
            return false;
        }
        if (!Objects.equals(this.papelTipo, other.papelTipo)) {
            return false;
        }
        if (!Objects.equals(this.conectividade, other.conectividade)) {
            return false;
        }
        if (this.fax != other.fax) {
            return false;
        }
        if (this.digitalizacao != other.digitalizacao) {
            return false;
        }
        if (!Objects.equals(this.rendimentoToner, other.rendimentoToner)) {
            return false;
        }
        if (Float.floatToIntBits(this.valorMaxVenda) != Float.floatToIntBits(other.valorMaxVenda)) {
            return false;
        }
        if (Float.floatToIntBits(this.valorMinVenda) != Float.floatToIntBits(other.valorMinVenda)) {
            return false;
        }
        if (Float.floatToIntBits(this.valorMaxLocacao) != Float.floatToIntBits(other.valorMaxLocacao)) {
            return false;
        }
        if (Float.floatToIntBits(this.valorMinLocacao) != Float.floatToIntBits(other.valorMinLocacao)) {
            return false;
        }
        if (this.status != other.status) {
            return false;
        }
        return true;
    }

    
}